package com.zln.hello;

/**
 * 演示算数运算符的使用
 */
public class ArithmeticOperator {
    public static void main (String[] args){
        // 1. / 使用
        System.out.println(10 / 4);  // 2
        System.out.println(10.0 / 4);  // 2.5
        double d = 10 / 4;
        System.out.println(d); //2.0

        // 2.取模的使用(取余):
         //解释： 在 % 的本质 看一个公式： a % b = a- a/b * b
        System.out.println("=====================================");
        System.out.println(10 % 3);  // 1
        System.out.println(-10 % 3);  // -1
        System.out.println(10 % -3);  // 1   10 % -3 => 10 - 10 / -3 *-3 = 10 - (-3) * (-3) = 1
        System.out.println(-10 % -3);  // -1  -10 % -3 =>  -10 - (-10) / (-3) * -3 = -10 - 3 * (-3) = -1

        // 3.++的使用
        int i = 10;
        i++; //自增  等价于 i = i + 1;  => i = 11
        ++i;//自增  等价于 i = i + 1;  => i = 12
        System.out.println("i = " + i); //12

       /*
       作为表达式使用
        前++：++i先自增后赋值
        后++：i++先复制后自增
        */
        System.out.println("====================================="); //2.0
        int j = 8;
        int k = ++j;  //等价于 j = j + 1; k = j;    k = 9;j = 9
        int g = j++; // 等价于 g= j; j = j + 1;     g = 9; j = 10
        System.out.println("k = " + k + ",j = " + j + ",g = " + g);


        /**
         * 1.需求：假如还有59天放假，问：合xx个星期零xx天
         * 2.思路分析
         *      (1) 使用int变量 days 保存天数
         *      (2)一个星期是7天 星期数weeks： days / 7 零xx天 leftDays % 7
         * 3。走代码
         *
         */
        int days  = 59;
        int weeks = days / 7;
        int leftDays = days % 7;
        System.out.println("合" + weeks + "个星期零" + leftDays + "天");


        /**
         * 1.需求：定义一个变量保存华氏温度，华氏温度转换摄氏温度的公式为：5/9*(华氏温度-100)，
         *      请求华氏温度对应的摄氏温度。【234.6】
         * 2.思路分析：
         *      (1) 先定义 double Fahrenheit 变量 保存 华氏温度
         *      (2)根据给出的公式，进行计算即可 5/9*(华氏温度-100)
         *         考虑数学公式和java语言的特性
         *      (3)将得到的结果保存到 double Fahrenheit
         * 3.走代码
         */
        double Fahrenheit = 234.6;
        double Celsius = 5.0 / 9 * (Fahrenheit - 100);
        System.out.println("华氏温度：" + Fahrenheit + "对应的摄氏温度是：" + Celsius);

        /**
         * 运算结果：
         * 合8个星期零3天
         * 华氏温度：234.6对应的摄氏温度是：74.77777777777777
         */


    }
}
